lib/remote: Add arguments to internal OstreeRemote constructor
authorPhilip Withnall <withnall@endlessm.com>
Thu, 18 May 2017 07:17:29 +0000 (08:17 +0100)
committerAtomic Bot <atomic-devel@projectatomic.io>
Fri, 19 May 2017 15:01:59 +0000 (15:01 +0000)
Add a name argument to the internal OstreeRemote constructor,
since this member (and several derived from it) is non-nullable,
and hence must always be set at construction time.

This changes the only call sites of the constructor to use the new API,
which is internal.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #875
Approved by: cgwalters

src/libostree/ostree-remote-private.h
src/libostree/ostree-remote.c
src/libostree/ostree-repo.c

index 13f757ed126c8a355a8a322478d1fe8024d0327d..856cdaa6254cbd69a0230bcc2ee20000db476ca4 100644 (file)
@@ -46,7 +46,7 @@ struct OstreeRemote {
 };
 
 G_GNUC_INTERNAL
-OstreeRemote *ostree_remote_new (void);
+OstreeRemote *ostree_remote_new (const gchar *name);
 
 G_GNUC_INTERNAL
 OstreeRemote *ostree_remote_new_from_keyfile (GKeyFile    *keyfile,
index f34fafa45170701ab8d6b26d68a5a8497b2d8d57..1932b22fedafb46ee62e61c8516dd5de9a6cb0c4 100644 (file)
  */
 
 OstreeRemote *
-ostree_remote_new (void)
+ostree_remote_new (const gchar *name)
 {
   OstreeRemote *remote;
 
+  g_return_val_if_fail (name != NULL && *name != '\0', NULL);
+
   remote = g_slice_new0 (OstreeRemote);
   remote->ref_count = 1;
+  remote->name = g_strdup (name);
+  remote->group = g_strdup_printf ("remote \"%s\"", name);
+  remote->keyring = g_strdup_printf ("%s.trustedkeys.gpg", name);
   remote->options = g_key_file_new ();
 
   return remote;
@@ -70,6 +75,7 @@ ostree_remote_new_from_keyfile (GKeyFile    *keyfile,
 {
   g_autoptr(GMatchInfo) match = NULL;
   OstreeRemote *remote;
+  g_autofree gchar *name = NULL;
 
   static gsize regex_initialized;
   static GRegex *regex;
@@ -88,10 +94,8 @@ ostree_remote_new_from_keyfile (GKeyFile    *keyfile,
   if (!g_regex_match (regex, group, 0, &match))
     return NULL;
 
-  remote = ostree_remote_new ();
-  remote->name = g_match_info_fetch (match, 1);
-  remote->group = g_strdup (group);
-  remote->keyring = g_strdup_printf ("%s.trustedkeys.gpg", remote->name);
+  name = g_match_info_fetch (match, 1);
+  remote = ostree_remote_new (name);
 
   ot_keyfile_copy_group (keyfile, remote->options, group);
 
index 2ef64ec0e615503b46f32725d9c091e37dbac7e5..b47bd3824e1a673e61ac47fab8e73afd549e43ee 100644 (file)
@@ -882,10 +882,7 @@ impl_repo_remote_add (OstreeRepo     *self,
                          name, remote->file ? gs_file_get_path_cached (remote->file) : "(in config)");
     }
 
-  remote = ostree_remote_new ();
-  remote->name = g_strdup (name);
-  remote->group = g_strdup_printf ("remote \"%s\"", name);
-  remote->keyring = g_strdup_printf ("%s.trustedkeys.gpg", name);
+  remote = ostree_remote_new (name);
 
   /* The OstreeRepo maintains its own internal system root path,
    * so we need to not only check if a "sysroot" argument was given